<?php if ( ! defined("BASEPATH")) exit("No direct script access allowed");

class Admin extends CI_Controller {
		
	public function __construct(){
		parent::__construct();
		init_painel();
	}

	public function index(){
		if(esta_logado(FALSE)) redirect('painel/painel');
		$this->login();
	}
	
	public function login(){
		$this->form_validation->set_rules('usuario', 'USUÁRIO', 'trim|required|min_length[4]|strtolower');
		$this->form_validation->set_rules('senha', 'SENHA', 'trim|required|min_length[4]|strtolower');
		if ($this->form_validation->run()==TRUE):
			$usuario = $this->input->post('usuario', TRUE);
			$senha = md5($this->input->post('senha', TRUE));
			$redirect = $this->input->post('redirect', TRUE);
			if ($this->usuarios->do_login($usuario, $senha) == TRUE):
				$query = $this->usuarios->get_bylogin($usuario)->row();
				$dados = array(
					'user_id' => $query->id,
					'user_nome' => $query->nome,
					'user_admin' => $query->adm,
					'permissao_grupo_id' => $query->permissao_grupo_id,
					'user_logado' => TRUE,
				);
				$this->session->set_userdata($dados);
				auditoria('Login no sistema', 'Usuário "'.$usuario.'" fez login no sistema');
				if ($redirect != ''):
					redirect($redirect);
				else:
					redirect(base_url('painel/painel'));
				endif;
			else:
				$query = $this->usuarios->get_bylogin($usuario)->row();
				if (empty($query)):
					set_msg('errologin', 'Usuário inexistente', 'erro');
					auditoria('Erro de login', 'Usuário inexistente "'.$usuario.'"');
				elseif ($query->senha != $senha):
					set_msg('errologin', 'Senha incorreta', 'erro');
					auditoria('Erro de login', 'Senha incorreta para o usuário "'.$usuario.'"');
					
				elseif ($query->ativo == 0):
					auditoria('Erro de login', 'Usuário inativo "'.$usuario.'"');
					set_msg('errologin', 'Este usuário está inativo', 'erro');
				else:
					auditoria('Erro de login', 'Erro desconhecido para o usuário "'.$usuario.'"');
					set_msg('errologin', 'Erro desconhecido, contate o desenvolvedor', 'erro');
				endif;
				redirect(base_url('admin/login'));
			endif;
		endif;
		$data = array(
			'tela' => 'login'
		);
		set_tema('headerinc', load_css(array('animate.min')));
		set_tema('titulo', 'Login');
		set_tema('conteudo', load_modulo('painel', 'admin', $data));
		set_tema('rodape', '');
		load_template();
	}

	public function logoff(){
		auditoria('Logoff no sistema', 'O usuário "'.$this->usuarios->get_byid($this->session->userdata('user_id'))->row()->login.'" fez logoff do sistema', FALSE);
		$this->session->unset_userdata(array('user_id'=>'', 'user_nome'=>'', 'user_admin'=>'', 'user_logado' => ''));
		set_msg('logoffok', 'Logoff efetuado com sucesso', 'sucesso');
		redirect(base_url('admin/login'));
	}
	
	public function nova_senha(){
		$this->form_validation->set_rules('email', 'EMAIL', 'trim|required|valid_email|strtolower');
		if ($this->form_validation->run()==TRUE):
			$email = $this->input->post('email', TRUE);
			$query = $this->usuarios->get_byemail($email);
			if ($query->num_rows()==1):
				$novasenha = substr(str_shuffle('qwertyuiopasdfghjklzxcvbnm0123456789'), 0, 6);
				$mensagem = "<p>Você solicitou uma nova senha para acesso ao painel de administração do site, a partir de agora use a seguinte senha para acesso: <strong>$novasenha</strong></p><p>Troque esta senha para uma senha segura e de sua preferência o quanto antes.</p>";
				if ($this->sistema->enviar_email($email, 'Nova senha de acesso', $mensagem)):
					$dados['senha'] = md5($novasenha);
					$this->usuarios->do_update($dados, array('email'=>$email), FALSE);
					auditoria('Redefinição de senha', 'O usuário solicitou uma nova senha por email');
					set_msg('msgok', 'Uma nova senha foi enviada para seu email', 'sucesso');
					redirect('admin/nova_senha');
				else:
					set_msg('msgerro', 'Erro ao enviar nova senha, contate o administrador', 'erro');
					redirect('admin/nova_senha');
				endif;
			else:
				set_msg('msgerro', 'Este email não possui cadastro no sistema', 'erro');
				redirect('admin/nova_senha');
			endif;
		endif;
		$data = array(
			'tela' => 'nova_senha'
		);
		set_tema('headerinc', load_css(array('animate.min')));
		set_tema('titulo', 'Recuperar senha');
		set_tema('conteudo', load_modulo('painel', 'admin', $data));
		set_tema('rodape', '');
		load_template();
	}
	
}

/* End of file admin.php */
/* Location: ./application/controllers/admin.php */
